package com.easyadmin.utils;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.RandomStringUtils;

import java.util.Map;

/**
 * @Description: 工具类
 * @auther: 多多洛
 * @date: 9:40 2020/11/22
 */
public class StringTools {

    public static String encodeByMD5(String originString) {
        return StringTools.isEmpty(originString) ? null : DigestUtils.md5Hex(originString);
    }

    /**
     * @Description: 判断是否为空
     * @auther: 多多洛
     * @date: 9:40 2020/11/22
     * @param: [str]
     * @return: boolean
     */
    public static boolean isEmpty(String str) {

        if (null == str || "".equals(str) || "null".equals(str) || "\u0000".equals(str)) {
            return true;
        } else if ("".equals(str.trim())) {
            return true;
        }
        return false;
    }

    /**
     * @Description: 获取文件后缀
     * @auther: 多多洛
     * @date: 9:40 2020/11/22
     * @param: [fileName]
     * @return: java.lang.String
     */
    public static String getFileSuffix(String fileName) {
        String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
        return suffix;
    }

    /**
     * @Description: 获取文件名
     * @auther: 多多洛
     * @date: 9:40 2020/11/22
     * @param: [fileName]
     * @return: java.lang.String
     */
    public static String getFileName(String fileName) {
        String name = fileName.substring(0, fileName.lastIndexOf("."));
        return name;
    }

    /**
     * @Description: 格式化文件大小
     * @auther: 多多洛
     * @date: 9:41 2020/11/22
     * @param: [size]
     * @return: java.lang.String
     */
    public static String formateSize(long size) {
        //如果字节数少于1024，则直接以B为单位，否则先除于1024，后3位因太少无意义
        if (size < 1024) {
            return String.valueOf(size) + "B";
        } else {
            size = size / 1024;
        }
        //如果原字节数除于1024之后，少于1024，则可以直接以KB作为单位
        //因为还没有到达要使用另一个单位的时候
        //接下去以此类推
        if (size < 1024) {
            return String.valueOf(size) + "KB";
        } else {
            size = size / 1024;
        }
        if (size < 1024) {
            //因为如果以MB为单位的话，要保留最后1位小数，
            //因此，把此数乘以100之后再取余
            size = size * 100;
            return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "MB";
        } else {
            //否则如果要以GB为单位的，先除于1024再作同样的处理
            size = size * 100 / 1024;
            return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "GB";
        }
    }

    /**
     * @Description: 获取随机数字
     * @auther: 多多洛
     * @date: 9:41 2020/11/22
     * @param: [count]
     * @return: java.lang.String
     */
    public static final String getRandomNumber(Integer count) {
        return RandomStringUtils.random(count, false, true);
    }


    /**
     * @Description: 获取随机字符串
     * @auther: 多多洛
     * @date: 9:41 2020/11/22
     * @param: [count]
     * @return: java.lang.String
     */
    public static final String getRandomString(Integer count) {
        return RandomStringUtils.random(count, true, false);
    }

    public static void main(String[] args) {
        try {
            String response = OKHttpUtils.getRequest("http://whois.pconline.com.cn/ipJson.jsp?ip=58.49.23.162", null);
            response = response.replace("if(window.IPCallBack) {IPCallBack(", "");
            response = response.replace(");}", "");
            Map<String, String> obj = JsonUtils.convertJson2Obj(response, Map.class);
            System.out.println(obj.get("pro"));
            System.out.println(obj.get("city"));
            System.out.println(obj.get("addr"));
        } catch (Exception e) {

        }
    }


}
